A device resembling a telephone with the capability of performing conventional telephone and computer functions in a user-friendly environment is desired to gain acceptance as a home terminal. Most remotely accessible financial and information provider services, such as automated banking or stock price quotation, are currently accessible using a personal computer (PC) or a "dumb terminal", i.e. a terminal device having no intelligence. Such systems are not fully user-friendly because the user needs some computer literacy and familiarity with the financial and information provider services' programs. The depth of their market penetration is generally limited to users who are knowledgeable in the computer field or to those willing to learn. Accessing such services using PCs is also restricted by the limited availability of PCs in the residences of most potential users. Moreover, these potential users lack the basic technical skills to operate a PC or they find a PC too inconvenient to operate.
It will also be appreciated that in recent years customers of one of these remotely accessible services, automated banking, have increasingly become accustomed to using automatic teller machine devices (ATMs). These devices have become relatively successful because they provide simple and clear "menus" of choices to customers at each step of each transaction. Using these simple menus, customers are readily led through the sequence of inputs required by the system to respond to customers' requests. It would be desirable if such services were conveniently available in the privacy of their homes. The present telephone-computer was developed exactly for the purpose of providing a readily available userfriendly microcomputer with the familiar appearance of a standard table telephone.
Financial and information provider services typically are remotely accessible using software prepared by individual programmers using personal computers. Typically, these personal computers are those manufactured by the IBM Corporation (IBM PC) or so-called "clones" (PC) manufactured by others. All these computers run various software programs which have been designed to run on an IBM PC. The PC system is currently so thoroughly entrenched throughout the industry that replacement by another type of system is unlikely. Any home terminal or computer intended to be employed with a remote access system now operating typically emulates the IBM PC "architecture". Further details of this requirement are set forth below.
To date, substantially all PCs have been configured to comprise a keyboard having 60 to 101 keys, a display device, and a housing containing the circuit boards of the computer, including various input/output (I/0) interfaces for connecting devices such as modems for communication, printers, and the like. It will be apparent to those of skill in the art that the provision of "PC functionality", the ability to run conventional PC software programs without modification to the software, places very substantial constraints on the design of a computer that is to fit within a relatively small housing conforming in size and shape to that of a conventional telephone. For example, virtually all PC programs are designed to be stored on floppy disks, or are initially supplied on floppy disks and later copied to a hard disk. Both of these memory devices require more space than is available in the housing of a conventional telephone. Similarly, the circuit boards used conventionally in PCs are much too large to fit within a conventional telephone, as are the QWERTY keyboards presently used. Accordingly, it is not possible to simply force the normal PC components into a housing resembling a conventional telephone. Moreover, it is desirable to eliminate the use of removable floppy disks and the like to simplify operation and to render it even more userfriendly, thus making it accessible to a wider class of possible users.
It is essential to provide a telephone-computer that can simulate the operation of a system comprising floppy and/or hard disk memory devices, as well as other I/0 devices such as printers and the like, while fitting within the confines of a familiar and non-threatening telephone and still provide all conventional telephone functions.
It will also be appreciated that if a home terminal is to provide access to a remote service computer to perform private services such as financial transactions, a very high degree of security must be built into the system, such that users cannot corrupt their own or other accounts, cannot modify other accounts, and, most importantly, cannot cause a system error that would cause the entire remote computer system to cease operations, however briefly. To do so, the home terminal must interact with the network in a sophisticated way. It is also highly desirable that the interaction of terminal and host be amenable to convenient alteration at later
For example, there have recently been widely publicized instances of "software viruses" causing chaos in computer networks. It is therefore highly significant that the computerized telephone provided to the user by the present invention be updatable with respect to any hardware and software changes which may be required to eliminate the possibility of such bugs or viruses. It must also be capable of implementing new forms of security such as data encryption. The prior art teaches no system which provides anything remotely resembling this set of features in a home terminal intended for accessing, for instance, a banking system.
Megatel Computer Corporation, of Weston, Ontario, Canada, has been selling a single board computer capable of emulating an IBM Personal Computer and thereby capable of running conventional software programs intended for use with conventional IBM PCs. This Megatel computer has a single circuit board combining a microprocessor, typically a Nippon Electric Corporation (NEC) model V25 or V40, a programmable gate array chip, sold by Xilinx Corporation under Model No. XC2018 or the equivalent, random access memory (RAM), read-only memory (ROM), and various I/O devices, as well as associated connectors and the like. Briefly stated, the use of the programmable gate array to connect the microprocessor to the memory and to the I/O devices has provided this computer with unparalleled flexibility in emulation of the basic functions of an IBM PC such that it is capable of running substantially all conventional software programs for the IBM PC. This is true even though in many applications the Megatel computer is not connected to external magnetic storage media, printers and the like, and even though the software would normally run only on computers configured for an IBM PC. To fully understand the significance, a brief discussion of the IBM PC compatibility is disclosed below.
As a rule, conventional software programs are "PCcompatible" when they are intended to be run on the IBM PC. However, not all "PC-compatible" programs will run on all PCs. For example, one program may require a hard disk having 40 megabytes storage capacity. Another may require one megabyte of RAM. A third may require an optical disk, a fourth a VGA adapter card, and a fifth, two floppy disks. Thus, PC-compatibility only implies, with respect to a particular software program, that a PC can be configured with appropriate optional internal devices and peripherals on which the software will then run. In other words, it does not mean that all "PCcompatible" software will run on the same PC.
The basic hardware components of the PC, as distinguished from its peripherals, include a microprocessor, ROM, and RAM, and circuit elements providing logical connection between these basic components as well as to the keyboard, to the display, and to any peripherals such as modems, printers, external memory and the like. The peripherals are normally connected directly to various dedicated "driver" an "interface" chips, which are in turn connected by logic circuit elements to the microprocessor, the RAM and the ROM. All PCs require some sort of hardware, i.e., discrete circuit elements, to provide appropriate logical connections to functionally "glue" the microprocessor, the RAM, the ROM, and the various dedicated I/0 devices and peripheral drivers together.
Certain software, referred to as the "BIOS", for Basic I/O System, is also essential to provide the "PC architecture". The BIOS provides the interface between the usual PC-compatible software programs (which are also referred in the art as "DOS-compatible", which means that they are designed to work with IBM's Disk Operating System, or DOS; DOS is only useful if the BIOS and BIOS-compatible hardware are already in place) and the actual hardware elements. The hardware elements plus the BIOS form the basic "PC architecture".
In the IBM PC, a custom designed "gate array" chip normally provides the logical connection between the microprocessor, the RAM, the ROM, and the various dedicated I/0 and peripheral driver elements. Others have provided these functions using so-called programmable logic array (PLA) chips. Such PLA chips comprise a number of predefined but not pre-connected logic gates on a chip. Connections are established by fusing fusible links disposed on the chip. Once programmed, the PLA circuitry cannot be further altered.
The BIOS used by Megatel's computer is also commercially available. The "glue" required to functionally connect the microprocessor, the memory, and the I/0 chips is provided by configuring a Programmable Gate Array (PGA) chip by supply of a series of signals, referred to by Xilinx as "configuration programs" and sometimes referred herein as "configuration code", or "configuration software". Essentially, this configuration code defines the logical connection of various basic logic elements on the PGA chip.
A significant advantage is provided by use of the PGA chip, in that, by supplying new configuration code, changes can be made to the hardware connecting the microprocessor to the memory and the I/0 chips on the circuit board. For example, if a particular hardware change needs to be made to accommodate a particular software program, this can be done readily by simply supplying reconfiguration code appropriately to the PGA chip and reconfiguring it before running the software.
Use of the PGA chip has extremely powerful and extensive implications. For example, a piece of software running on a IBM PC operates properly when it "receives" an appropriate sequence of signals from the microprocessor in response to the signals it "generates". For example, a microprocessor may be directed by software to send a certain data item to a floppy disk for storage. The floppy disk controller responds to such a request with a predetermined acknowledgement signal. When this signal is received by the software, it then performs a subsequent function. Accordingly, if the PGA chip is configured to respond to a particular signal provided by the software with the proper acknowledgement signal, the software can be "fooled" into thinking that the PC is configured with certain peripherals when in fact none is provided. To provide "software-compatibility" the PGA chip need simply be configured to respond to a known sequence of signals with a corresponding sequence of response signals, thus fooling the software into thinking that it is running on a properly configured PC.
The Xilinx "Programmable Gate Array Data Book" (1988) discusses at pages 6-38 --6-40 use of this technology for "Self-Diagnosing Hardware", suggesting that the device . . . can perform diagnostic functions at power-up, or in test modes, and perform normal functions where the board is determined to be operational. It is specifically suggested that this will be particularly useful for testing peripheral control logic using loopback techniques, I/0 and memory error detection circuitry, and interrupt techniques.
As previously discussed, Megatel has been using the PGA technology to emulate a PC. However, to the best of the inventors knowledge, there has been no application of this PGA technology to the specific problem of providing a computer configured as a telephone for accessing a variety of information and financial services; no use of this PGA technology to physically emulate a computer while providing various functions of a typical telephone; and no implementation of a home computer in which some portion of the hardware is defined by configuration code supplied to a programmable gate array, much less one that can be remotely reconfigured, e.g. so as to avoid and cure a "hardware virus", to provide an improved security function such as data encryption, or to otherwise reconfigure the logic of a terminal once installed in the user's home. By having this feature, additional terminal functions can also be remotely added to the telephonecomputer after its installation in the users' homes. This has not been done prior to the present invention by Megatel or otherwise, to the best of the inventors' knowledge.
Use of microprocessors for telecommunications application is known in the art as shown by Subhash Bal, "New Generation Microprocessor for Telecommunication Applications." Proceedings 1980-International Conference on Communications, Seattle, Washington, (June 8-12, 1980) pages 11.5.1-11.5.4. Additionally, microprocessors have been used as control apparatus for a number of communication system administration functions and in switching systems as shown in U.S. Pat. No. 4,580,011 to Robert E. Glazer, issued Apr. 1, 1986 and U.S. Pat. No. 4,629,832 to Robert A. Carson et al, issued Dec. 6, 1986. It is known that, to increase system integrity, the administration functions in a telephone network can be controlled by a microprocessor to facilitate the interaction of a private branch exchange or similar telephone network with a telephone central office. It is also known to perform telephone protection functions through a microprocessor. Operation of computers with simple interfaces and the connection of several computers to a host computer in a network through modems is also known in the prior art. However, the prior art does not teach the use of a microprocessor controlled primarily through a 12 -key keypad of a normal telephone device where the keypad also operates a stand-alone telephone unit and additionally provides user interface to the microprocessor.